package com.atguigu.rabbitmq.two;

import com.atguigu.rabbitmq.util.RabbitMqUtils;
import com.rabbitmq.client.CancelCallback;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;

/**
 * 这是一个工作线程 相当于之前消费则
 */
public class Work01 {

    // 队列的名称
    public static final String QUEUE_NAME = "hello";


    // 接受消息
    public static void main(String[] args) throws Exception {

        // 获取信道
        Channel channel = RabbitMqUtils.getChannel();

        /**
         * 消费者消费消息
         * 1. 消费那个队列
         * 2. 消费者消费成功之后是否要自动应答 true 代表的自动应答 false代表手动应答
         * 3. 消费者未成功消费的回调
         * 4. 消费者取消 消费的回调
         */
        // 第三个参数创建 声明接受消息
        DeliverCallback deliverCallback = (consumerTag, message) -> {
            System.out.println("接受到的消息："+new String(message.getBody()));
        };
        // 第四个参数的创建 取消消息时的回调
        CancelCallback cancelCallback = consumerTag -> {
            System.out.println("消息者取消消费接口逻辑回调");
        };
        System.out.println("C2等待接受消息.......");
        // 消息的接受
        channel.basicConsume( QUEUE_NAME,true,deliverCallback,cancelCallback);

    }
}
